#ifndef ICEBASE_H
#define ICEBASE_H

#include <QObject>
#include <QString>
#include <opencv2/opencv.hpp>
#include "ObjIdentify.h"
#include <string>
#include <Ice/Ice.h>
#include <QDateTime>



using namespace std;
using namespace cv;
using namespace IdentifyModule;

enum ComputingPlatform { DK200, FPGA ,ARM, NVIDIA};
enum ProcessType{DTETCT,CLASSIFY,HAND_CLASSIFY};


class IceBase : public QObject
{
    Q_OBJECT
public:

    IceBase(QObject *parent = nullptr);
    void imgToRow(string imgfilepath, Row &img_Row);
    void imgToRow(Mat frame, Row &img_Row,  bool is_rgb_shift = 1);
    virtual int request(int type, string file ,::IdentifyModule::BboxSeq &objKind) = 0;
    virtual int request(int type, Mat file ,::IdentifyModule::BboxSeq &objKind) = 0;
    virtual int request(int type, QStringList &info)= 0;
    virtual qint64 getRequestTimeSpan()= 0;

protected:
    int kModelWidth;
    int kModelHeight;
    int chn;
    int deviceID;
    string ModelPath;
    string WeightPath;
    qint64 requestTimeSpan;
};

#endif // ICEBASE_H
